{% extends 'base.html' %}
{% block title %}Namespaces{% endblock %}
{% block nav-item-1 %}layui-nav-itemed{% endblock %}
{% block nav-child-1-2 %}layui-this{% endblock %}
{% block content %}
    {% csrf_token %}
<span class="layui-breadcrumb">
  <a href="#">首页</a>
  <a href="#">Kubernetes</a>
  <a><cite>Namespaces</cite></a>
</span>
<hr class="layui-border-red">
<div class="layui-card">
    <div class="layui-card-body">
        <div class="layui-row layui-col-space10">
            <div class="layui-col-md12">
                <button class="layui-btn" style="float: left" id="create">创建</button>
                <input type="text" name="name" class="layui-input" style="width: 150px;float: left;margin-left: 5px" placeholder="输入名称">
                <button class="layui-btn" style="float: left" id="searchBtn">搜索</button>
            </div>

            <div class="layui-col-md12">
                <table id="test" lay-filter="test"></table>
                <script type="text/html" id="barDemo">
                  <a class="layui-btn layui-btn-xs layui-btn-primary" lay-event="yaml">YAML</a>
                  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
                </script>
            </div>
        </div>
    </div>
</div>

<div style="display: none" id="ck">
    <form class="layui-form" onsubmit="return false">
      <div class="layui-form-item">
        <label class="layui-form-label">名称：</label>
        <div class="layui-input-block">
          <input type="text" name="name" placeholder="" autocomplete="off" class="layui-input" style="width: 170px">
        </div>
      </div>
      <button class="layui-btn" lay-submit lay-filter="createBtn" style="margin-left: 37%;margin-top: 5%">创建</button>
    </form>
</div>

{% endblock %}
{% block js %}
<script>
layui.use('table', function(){
  var table = layui.table;
  var form = layui.form;
  var $ = layui.jquery;
  //动态渲染表格
  table.render({
    elem: '#test'
    ,url: '{% url 'namespace_api' %}' //数据接口
    ,toolbar: '#toolbarDemo' //开启头部工具栏，并为其绑定左侧模板
    ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义，去除该参数即可
      title: '提示'
      ,layEvent: 'LAYTABLE_TIPS'
      ,icon: 'layui-icon-tips'
    }]
    ,page: true //开启分页
    ,cols: [[ //表头
      {field: 'name', title: '名称', sort: true}
      ,{field: 'labels', title: '标签', templet: labelsFormat}
      ,{field: 'create_time', title: '创建时间'}
      ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
    ]]
      ,id: "TT"
  });
  // 标签格式化
    function labelsFormat(d) {
        result = "";
        if (d.labels == null) {
            return "None"
        } else {
            for(let key in d.labels) {
                result += '<span style="border: 1px solid #009688;border-radius: 5px">' + key + ':' + d.labels[key] + '</span><br>'
            }
            console.log(result);
            return result
        }
    }
  //监听行工具事件
  table.on('tool(test)', function(obj){
    var data = obj.data;
    //console.log(obj)
    if(obj.event === 'del'){
      layer.confirm('你要真要删除' + data.name + '命名空间吗？', function(index){
        var csrf_token = $('[name="csrfmiddlewaretoken"]').val();
        $.ajax({
            type: "DELETE",
            url: "{% url 'namespace_api' %}",
            data: data,
            headers: {'X-CSRFToken': csrf_token},
            success: function (res) {
                if(res.code == 0){
                    obj.del();  // 删除当前页面数据
                    layer.msg(res.msg,{icon: 6, time: 3000}) // 默认停顿3秒
                } else {
                    layer.msg(res.msg,{icon: 5})
                }
            },
            error: function () {
                layer.open({
                    type: 0,
                    title: ['异常信息'],
                    content: "服务器接口异常！"
                })
            }
         });
        layer.close(index);
      });
    } else if (obj.event === 'yaml'){
        // 查看YAML
        layer.open({
            title: "YAML",
            type: 2, // 从一个网址加载
            area: ["50%", "60%"],
            content: '{% url 'ace_editor' %}?resource=namespace' + '&name=' + data.name
        })
    }
  });
    // 监控搜索事件
    $('#searchBtn').click(function(){
        var search_key = $('input[name="name"]').val()
        table.reload('TT', {
          where: {
              search_key: search_key
          }
        });
    });
    // 监控创建事件
    $("#create").on("click", function () {
        layer.open({
            title: "创建命名空间",
            type:1,
            area : ['400px', '200px'],
            // closeBtn: 1, // 关闭按钮
            content: $("#ck").html()
             // ,btn: ['确定', '取消']
             // ,yes: function(index, layero){   // 自带按钮触发
             // }
              // 监听提交
              ,success: function (index, layero) {
                   form.on('submit(createBtn)', function (data) {
                       data = data.field;
                       csrf_token = $('[name="csrfmiddlewaretoken"]').val();
                       data['csrfmiddlewaretoken'] = csrf_token;
                       $.ajax({
                           url: '{% url "namespace_api" %}',
                           type: 'POST',
                           data: data,
                           dataType: 'json',
                           // 提交成功回调函数
                           success: function (res) {
                               if(res.code == '0'){
                                   layer.msg(res.msg,{icon:6});
                                   window.location.reload()
                               } else {
                                   layer.msg(res.msg, {icon:5})
                               }
                           },
                           // 访问接口失败函数
                           error: function (res) {
                               layer.msg("服务器接口异常！", {icon:5})
                           }
                       })
                   })
              }
        });
    })
});
</script>
{% endblock %}